/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package servidor.solicitudes;

import java.io.File;
import java.rmi.*;
import servidor.archivos.IArchivos;



/**
 * Clase que permite instanciar peticiones al Servidor de Archivos
 * @author Eduardo
 */
public class CSolicitudes {

    private IArchivos oArchivos;

    public CSolicitudes() {
        try {
            this.oArchivos = (IArchivos) Naming.lookup("//localhost/OArchivos");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * Permite al cliente visualizar un archivo alojado en el Servidor de Archivos
     * @param nombreArchivo Nombre del archivo que el cliente desea visualizar
     * @param ipCliente Ip del cliente que realiza la petición
     * @return Devuelve el contenido del archivo que el cliente visualizará por consola
     */
    public String getVista(String nombreArchivo, String ipCliente) throws RemoteException {
        return oArchivos.vista(nombreArchivo, ipCliente);
    }

    /**
     * Permite al cliente actualizar (si existe) o crear (si no existe) un archivo alojado en el
     * Servidor de Archivos
     * @param ruta Ruta del archivo en la máquina del cliente que será enviado al Servidor de
     * Archivos
     * @return Devuelve un valor lógico indicando un mensaje de éxito o error en la operación
     */
    public String getActualizacion(File fichero, String ipCliente) throws RemoteException {
        return oArchivos.actualizacion(fichero, ipCliente);
    }

    /**
     * Permite al cliente eliminar un archivo alojado en el Servidor de Archivos
     * @param nombreArchivo Nombre del archivo que el cliente desea eliminar
     * @return Devuelve un valor lógico indicando un mensaje de éxito o error en la operación
     */
    public String getEliminacion(String nombreArchivo, String ipCliente) throws RemoteException {
        return oArchivos.eliminarArchivo(nombreArchivo, ipCliente);
    }

    /**
     * Permite al cliente visualizar el contenido del archivo de bitácora alojado en el Servidor de
     * Archivos
     * @return El contenido del archivo de bitácora
     */
    public String getBitacora() throws RemoteException {
        return oArchivos.consultarBitacora();
    }
}
